/*	Main de la aplicacion Cliente
*
*
*/

#include "Cliente.h"
#include "ABM_Properties.h"
#include <cstdlib>

int main (int argc, char* argv[]) try {

	//	Obtengo configuracion por parte del usuario
	ABM_Properties prop(CLIENTE);
	prop.LevantarFile();
	std::string user = prop.GetValueFromKey(USER);
	std::string pass = prop.GetValueFromKey(PASS);
	std::string ip = prop.GetValueFromKey(IP);
	std::string port = prop.GetValueFromKey(PORT);
	std::string syncPath = prop.GetValueFromKey(DIRSINC);	// Directorio a sincronizar
	std::string intervaloPolling = prop.GetValueFromKey(INTPOLL);

	// Completo el path del indice (dentro de una carpeta indice en el repo local)
	std::string indexPath = syncPath;
	indexPath += "indice/indice";

	Cliente cliente(user.c_str(), pass.c_str(), syncPath.c_str(),
			indexPath.c_str(), atoi(intervaloPolling.c_str()));

	cliente.iniciarTrabajo(atoi(port.c_str()), ip.c_str());

	cliente.start();

	// El cliente deja de ejecutarse al recibir q\n
	std::string entrada;
	do{
		std::cin >> entrada;
	} while (entrada.compare("q") != 0);

	cliente.stop();
	cliente.join();
	std::cout << "Programa terminado" << std::endl;

	return 0;
} catch (MyException& e) {
	std::cout << e.what() << std::endl;
}
